A keyboard, video and mouse switch (KVM switch) allows a keyboard, video display monitor and mouse to be switched to any of a number of computers when typically one or more person interacts with the computers but only one computer at a time. Recently, keyboard and mouse devices, as well as other peripherals, have moved toward Universal Serial Bus (USB) technology.
USB is a peripheral bus standard developed by the PC and telecom industry, including Compaq, DBC, IBM, Intel, Microsoft, NEC and Northern Telecom. USB defines a bus and protocols for the connection of computer peripherals to computers (and computers to each other). “Universal Serial Bus Specification,” Compaq, Intel, Microsoft, NEC, Revision 1.1, Sep. 23, 1998, describes USB and its implementation and is incorporated herein by reference. In addition to standard USB devices and technologies, a newer USB standard 2.x now exists. “Universal Serial Bus Specification,” Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC, Philips, Revision 2.0, Apr. 27, 2000 describes the most current USB 2.x standard and its implementation and is incorporated herein by reference. The USB 2.x standard permits faster data transmission than the USB 1.x standard.
KVM switches are designed to connect keyboard and mouse devices to keyboard and mouse connection ports of computers. When switching keyboard and mouse devices between hosts, it may be desirable for it to appear to the host that the keyboard and mouse are always connected, even when they have been “switched” to another host. This is referred to as emulation. This “permanent connection” enables auto-boot functionality and translation.
Typically, before a switch is capable of emulating a human interface device (HID) to a host, the KVM switch must first reading the report descriptor of a HID, which typically occurs during the enumeration phase when a switch recognizes the connection of a new HID. From the report descriptor, a switch may be capable of determining the type of HID (e.g., a keyboard or mouse). The switch may then represent itself as a keyboard and a mouse to the USB host to which the KVM switch is connected. In this manner, the switch prevents the host from entering an enumeration phase each time a user switches from one host to another, which is generally considered undesirable because enumeration introduces delay to the process of switching between hosts.